<!DOCTYPE html>
<html>
<head>
    

    

    



    <meta charset="utf-8">
    
    
    
    
    <title>计算机网络——如何保证网络传输的安全性 | 博客主页 | 世界是个球，前方总有路！</title>
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    
    <meta name="theme-color" content="#3F51B5">
    
    
    <meta name="keywords" content="计算机网络">
    <meta name="description" content="一、前言&amp;emsp;&amp;emsp;前几天在面试时，被问到了如何保证网络数据传输的安全性的问题，当时对这一块没怎么研究过，所以当时并没有回答出来。所以，今天花了点时间，研究了一下这方面的内容。这篇博客就来简单说一说保证网络传输安全性的一些方式。   二、正文2.1 安全传输需要解决的问题&amp;emsp;&amp;emsp;先有问题，才有解决方案，所以我们先来讨论一下，网络传输中，需要解决哪些问题，才能保证安全。需">
<meta property="og:type" content="article">
<meta property="og:title" content="计算机网络——如何保证网络传输的安全性">
<meta property="og:url" content="http://tewuyiang.gitee.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BD%91%E7%BB%9C%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/index.html">
<meta property="og:site_name" content="博客主页">
<meta property="og:description" content="一、前言&amp;emsp;&amp;emsp;前几天在面试时，被问到了如何保证网络数据传输的安全性的问题，当时对这一块没怎么研究过，所以当时并没有回答出来。所以，今天花了点时间，研究了一下这方面的内容。这篇博客就来简单说一说保证网络传输安全性的一些方式。   二、正文2.1 安全传输需要解决的问题&amp;emsp;&amp;emsp;先有问题，才有解决方案，所以我们先来讨论一下，网络传输中，需要解决哪些问题，才能保证安全。需">
<meta property="og:locale" content="zh_CN">
<meta property="article:published_time" content="2020-05-14T10:49:59.000Z">
<meta property="article:modified_time" content="2020-05-14T12:56:51.076Z">
<meta property="article:author" content="特务依昂">
<meta property="article:tag" content="计算机网络">
<meta name="twitter:card" content="summary">
    
        <link rel="alternate" type="application/atom+xml" title="博客主页" href="/blog/atom.xml">
    
    <link rel="shortcut icon" href="/blog/img/title.png">
    <link rel="stylesheet" href="//unpkg.com/hexo-theme-material-indigo@latest/css/style.css">
    <script>window.lazyScripts=[]</script>

    <!-- custom head -->
    

<meta name="generator" content="Hexo 4.2.0"></head>

<body>
    <div id="loading" class="active"></div>

    <aside id="menu" class="hide" >
  <div class="inner flex-row-vertical">
    <a href="javascript:;" class="header-icon waves-effect waves-circle waves-light" id="menu-off">
        <i class="icon icon-lg icon-close"></i>
    </a>
    <div class="brand-wrap" style="background-image:url(/blog/img/brand.jpg)">
      <div class="brand">
        <a href="/blog/" class="avatar waves-effect waves-circle waves-light">
          <img src="/blog/img/avatar.jpg">
        </a>
        <hgroup class="introduce">
          <h5 class="nickname">特务依昂</h5>
          <a href="mailto:1131564805@qq.com" title="1131564805@qq.com" class="mail">1131564805@qq.com</a>
        </hgroup>
      </div>
    </div>
    <div class="scroll-wrap flex-col">
      <ul class="nav">
        
            <li class="waves-block waves-effect">
              <a href="/blog/"  >
                <i class="icon icon-lg icon-home"></i>
                主页
              </a>
            </li>
        
            <li class="waves-block waves-effect">
              <a href="/blog/archives"  >
                <i class="icon icon-lg icon-archives"></i>
                博客
              </a>
            </li>
        
            <li class="waves-block waves-effect">
              <a href="/blog/tags"  >
                <i class="icon icon-lg icon-tags"></i>
                标签
              </a>
            </li>
        
            <li class="waves-block waves-effect">
              <a href="/blog/categories"  >
                <i class="icon icon-lg icon-th-list"></i>
                分类
              </a>
            </li>
        
            <li class="waves-block waves-effect">
              <a href="https://github.com/tewuyiang" target="_blank" >
                <i class="icon icon-lg icon-github"></i>
                Github
              </a>
            </li>
        
            <li class="waves-block waves-effect">
              <a href="https://weibo.com/u/5516635708/" target="_blank" >
                <i class="icon icon-lg icon-weibo"></i>
                Weibo
              </a>
            </li>
        
            <li class="waves-block waves-effect">
              <a href="https://www.cnblogs.com/tuyang1129/" target="_blank" >
                <i class="icon icon-lg icon-link"></i>
                博客园
              </a>
            </li>
        
      </ul>
    </div>
  </div>
</aside>

    <main id="main">
        <header class="top-header" id="header">
    <div class="flex-row">
        <a href="javascript:;" class="header-icon waves-effect waves-circle waves-light on" id="menu-toggle">
          <i class="icon icon-lg icon-navicon"></i>
        </a>
        <div class="flex-col header-title ellipsis">计算机网络——如何保证网络传输的安全性</div>
        
        <div class="search-wrap" id="search-wrap">
            <a href="javascript:;" class="header-icon waves-effect waves-circle waves-light" id="back">
                <i class="icon icon-lg icon-chevron-left"></i>
            </a>
            <input type="text" id="key" class="search-input" autocomplete="off" placeholder="输入感兴趣的关键字">
            <a href="javascript:;" class="header-icon waves-effect waves-circle waves-light" id="search">
                <i class="icon icon-lg icon-search"></i>
            </a>
        </div>
        
        
        <a href="javascript:;" class="header-icon waves-effect waves-circle waves-light" id="menuShare">
            <i class="icon icon-lg icon-share-alt"></i>
        </a>
        
    </div>
</header>
<header class="content-header post-header">

    <div class="container fade-scale">
        <h1 class="title">计算机网络——如何保证网络传输的安全性</h1>
        <h5 class="subtitle">
            
                <time datetime="2020-05-14T10:49:59.000Z" itemprop="datePublished" class="page-time">
  2020-05-14
</time>


	<ul class="article-category-list"><li class="article-category-list-item"><a class="article-category-list-link" href="/blog/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/">计算机网络</a></li></ul>

            
        </h5>
    </div>

    


</header>


<div class="container body-wrap">
    
    <aside class="post-widget">
        <nav class="post-toc-wrap post-toc-shrink" id="post-toc">
            <h4>TOC</h4>
            <ol class="post-toc"><li class="post-toc-item post-toc-level-1"><a class="post-toc-link" href="#一、前言"><span class="post-toc-number">1.</span> <span class="post-toc-text">一、前言</span></a></li><li class="post-toc-item post-toc-level-1"><a class="post-toc-link" href="#二、正文"><span class="post-toc-number">2.</span> <span class="post-toc-text">二、正文</span></a><ol class="post-toc-child"><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#2-1-安全传输需要解决的问题"><span class="post-toc-number">2.1.</span> <span class="post-toc-text">2.1 安全传输需要解决的问题</span></a></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#2-2-非对称加密与对称加密"><span class="post-toc-number">2.2.</span> <span class="post-toc-text">2.2 非对称加密与对称加密</span></a></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#2-3-解决数据机密性"><span class="post-toc-number">2.3.</span> <span class="post-toc-text">2.3 解决数据机密性</span></a></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#2-4-同时解决发送方鉴别和报文完整性"><span class="post-toc-number">2.4.</span> <span class="post-toc-text">2.4 同时解决发送方鉴别和报文完整性</span></a></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#2-5-同时解决三个问题的方案"><span class="post-toc-number">2.5.</span> <span class="post-toc-text">2.5 同时解决三个问题的方案</span></a></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#2-6-解决发送方鉴别的其他方案"><span class="post-toc-number">2.6.</span> <span class="post-toc-text">2.6 解决发送方鉴别的其他方案</span></a></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#2-7-解决数据完整性的其他方案"><span class="post-toc-number">2.7.</span> <span class="post-toc-text">2.7 解决数据完整性的其他方案</span></a></li><li class="post-toc-item post-toc-level-2"><a class="post-toc-link" href="#2-8-如何防止发送方自己发送虚假数据"><span class="post-toc-number">2.8.</span> <span class="post-toc-text">2.8 如何防止发送方自己发送虚假数据</span></a></li></ol></li><li class="post-toc-item post-toc-level-1"><a class="post-toc-link" href="#三、总结"><span class="post-toc-number">3.</span> <span class="post-toc-text">三、总结</span></a></li><li class="post-toc-item post-toc-level-1"><a class="post-toc-link" href="#四、参考"><span class="post-toc-number">4.</span> <span class="post-toc-text">四、参考</span></a></li></ol>
        </nav>
    </aside>


<article id="post-计算机网络——如何保证网络传输的安全性"
  class="post-article article-type-post fade" itemprop="blogPost">

    <div class="post-card">
        <h1 class="post-card-title">计算机网络——如何保证网络传输的安全性</h1>
        <div class="post-meta">
            <time class="post-time" title="2020-05-14 18:49:59" datetime="2020-05-14T10:49:59.000Z"  itemprop="datePublished">2020-05-14</time>

            
	<ul class="article-category-list"><li class="article-category-list-item"><a class="article-category-list-link" href="/blog/categories/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/">计算机网络</a></li></ul>



            
<span id="busuanzi_container_page_pv" title="文章总阅读量" style='display:none'>
    <i class="icon icon-eye icon-pr"></i><span id="busuanzi_value_page_pv"></span>
</span>


        </div>
        <div class="post-content" id="post-content" itemprop="postContent">
            <h1 id="一、前言"><a href="#一、前言" class="headerlink" title="一、前言"></a>一、前言</h1><p>&emsp;&emsp;前几天在面试时，被问到了如何保证网络数据传输的安全性的问题，当时对这一块没怎么研究过，所以当时并没有回答出来。所以，今天花了点时间，研究了一下这方面的内容。这篇博客就来简单说一说保证网络传输安全性的一些方式。</p>
<br>

<h1 id="二、正文"><a href="#二、正文" class="headerlink" title="二、正文"></a>二、正文</h1><h2 id="2-1-安全传输需要解决的问题"><a href="#2-1-安全传输需要解决的问题" class="headerlink" title="2.1 安全传输需要解决的问题"></a>2.1 安全传输需要解决的问题</h2><p>&emsp;&emsp;先有问题，才有解决方案，所以我们先来讨论一下，网络传输中，需要解决哪些问题，才能保证安全。需要解决的问题大致有如下三个：</p>
<ol>
<li><strong>发送方鉴别</strong>：确保接收到的数据，确实是由我们认为的那个人（或主机）发送来的，而不是其他人以虚假身份发送的；</li>
<li><strong>报文完整性</strong>：确保我们接收到的报文就是发送方发送的初始报文，而没有被第三方进行篡改；</li>
<li><strong>数据机密性</strong>：确保报文即使被其他人截获，也无法读出其中的信息，也就是要对数据加密；</li>
</ol>
<p>&emsp;&emsp;如果上面三个问题都得到了解决，那我们基本上就可以保证数据传输是安全的。下面我们就针对上面三个问题，来谈一谈解决方案。</p>
<br>

<h2 id="2-2-非对称加密与对称加密"><a href="#2-2-非对称加密与对称加密" class="headerlink" title="2.2 非对称加密与对称加密"></a>2.2 非对称加密与对称加密</h2><p>&emsp;&emsp;在网络安全中，有两个非常重要的概念，就是<strong>对称加密</strong>和<strong>非对称加密</strong>，后面要谈的所有方案，都离不开这两种机制。所以，在了解具体解决问题的方案前，我们先来了解这两个概念。</p>
<p><strong>（一）对称加密</strong></p>
<p>&emsp;&emsp;对称加密的原理很简单，就是数据的发送方和接收方共享一个加密数据的密钥，使用这个密钥加密的数据，可以使用这个密钥进行解密。而这个密钥是隐私的，只有数据的发送方和接收方知道，这也就意味着，其他人如果截获了数据，由于这个数据使用了密钥加密，而它没有这个密钥，所有无法解析出原始数据。</p>
<p><strong>（二）非对称加密</strong></p>
<p>&emsp;&emsp;非对称加密系统中，参与加密解密的共有两个——<strong>公钥</strong>和<strong>私钥</strong>，使用私钥加密的数据，只能用公钥解密，而使用公钥加密的数据，只能用私钥解出。在非对称加密系统中，每一台主机都有自己的私钥和公钥，私钥只有自己知道，而公钥是公开的，可以让所有主机知道。发送方在发送数据时，使用接收方的公钥进行加密，而接收方使用自己的私钥进行解密，即可完成隐私的数据传输。如果数据被其它人截获，但是因为它没有接收方的私钥，所以无法解析出数据。</p>
<p>&emsp;&emsp;非对称加密能够工作的一个前提是，必须确保发送方拿到的公钥，就是接收方的公钥，而不是其他人发送来的假公钥，如果公钥是假的，那么这个机制也就失去了意义。在实际应用中，解决这个问题的方式就是，每一台主机的公钥和私钥，都是由官方机构所分配的，这些机构被称为<strong>认证中心</strong>（<code>CA</code>）。<code>CA</code>在分配公钥私钥时，会严格地验证身份，然后对身份进行绑定，而我们在获取公钥时，通过<code>CA</code>获取，即可保证获取到的公钥就是接收方的。</p>
<p>&emsp;&emsp;需要注意的一点是，<strong>非对称加密的效率一般比较低，而对称加密的效率相对较高</strong>。下面，开始正式讨论解决上面三个问题的方案。</p>
<br>

<h2 id="2-3-解决数据机密性"><a href="#2-3-解决数据机密性" class="headerlink" title="2.3 解决数据机密性"></a>2.3 解决数据机密性</h2><p><strong>（一）非对称加密</strong></p>
<ol>
<li><p>发送方获取接受方的公钥，使用公钥对需要发送的数据进行加密，然后发送；</p>
</li>
<li><p>接受方接收到后，使用自己的私钥进行解密，解析出数据；</p>
</li>
</ol>
<blockquote>
<p>总结：因为只有接受方知道自己的私钥，所以只有接受方能读出数据。但是，非对称加密的执行效率比较低，所以每一次数据传输都使用非对称加密，<strong>响应速度将会比较慢</strong>；</p>
</blockquote>
<br>

<p><strong>（二）非对称加密 + 对称加密（多次传输）</strong></p>
<p>&emsp;&emsp;为了解决非对称加密效率较低的问题，我们可以使用对称加密，但是同步对称加密的密钥，却需要依赖于非对称加密：</p>
<ol>
<li><p>发送方随机生成一个密钥，然后获取接受方的公钥，使用公钥加密这个密钥，发送给接受方；</p>
</li>
<li><p>接收方接收到加密的密钥后，使用自己的私钥解析出密钥，此时双方就完成了密钥同步；</p>
</li>
<li><p>之后双方发送的所有数据，都可以使用这个密钥进行加密解密；</p>
</li>
</ol>
<blockquote>
<p>总结：由于私钥只有接收方自己知道，所以这个密钥不会被其他人截获；同时使用对称加密的速度，要高于非对称加密，所以解决了上一个方案效率不高的问题；<strong>需要注意，一般密钥都比较短，所以使用非对称加密对密钥进行加密，一般比直接加密数据更快，而且只需要进行一次，所以速度能够显著提高</strong>。</p>
</blockquote>
<p>&emsp;&emsp;<code>HTTPS</code>依赖于<code>SSL</code>保证数据传输的安全性，而<code>SSL</code>就是使用类似机制。</p>
 <br>

<p><strong>（三）非对称加密 + 对称加密（单次传输）</strong></p>
<p>&emsp;&emsp;如果发送方只是需要向接收方发送一次数据，那先进行一次密钥同步可能有些浪费时间，可以使用如下方案解决：</p>
<ol>
<li><p>发送方随机生成一个密钥，然后使用这个密钥对数据进行加密；</p>
</li>
<li><p>发送方使用接收方的公钥对数据密钥进行加密，然后将加密的数据和加密的密钥发送；</p>
</li>
<li><p>接收方首先使用自己的私钥解析出密钥，然后使用解析出的密钥将数据解析出来；</p>
</li>
</ol>
<blockquote>
<p>总结：此方案适合于进行单次数据发送，因为不需要进行密钥的同步，而是将密钥与数据一同发送；同时，这个密钥使用了接收方的公钥加密，所以这个密钥只有接收方自己能解析出来，而其他人解析不出密钥，自然无法解析数据；</p>
</blockquote>
<br>

<h2 id="2-4-同时解决发送方鉴别和报文完整性"><a href="#2-4-同时解决发送方鉴别和报文完整性" class="headerlink" title="2.4 同时解决发送方鉴别和报文完整性"></a>2.4 同时解决发送方鉴别和报文完整性</h2><p>&emsp;&emsp;下面我们来说说解决发送方鉴别和报文完整性的方案。有一个经典的方案能够同时解决这两个问题，其过程如下：</p>
<p>此处讨论一个最常使用的解决上面两个问题的方法：</p>
<ol>
<li><p>发送方使用一个<code>hash</code>算法（如<code>MD5</code>、<code>SHA-1</code>），计算需要发送的数据的<code>hash</code>值；</p>
</li>
<li><p>使用自己的私钥，对计算出的<code>hash</code>值进行加密；</p>
</li>
<li><p>将原始数据和加密后的<code>hash</code>值发送到接收方；</p>
</li>
<li><p>接收方使用发送方的公钥解析出加密后的<code>hash</code>值；</p>
</li>
<li><p>使用与发送方相同的<code>hash</code>算法，计算接收到的数据的<code>hash</code>值，与解析出的<code>hash</code>值进行比较；</p>
</li>
<li><p>若这两个<code>hash</code>值一致，表示这个数据并没有被篡改；</p>
</li>
</ol>
<blockquote>
<p>总结：</p>
<p>1、首先，hash值是用发送方的私钥加密，私钥只有发送方自己知道，如果接收方能够使用发送方的公钥解密，那就说明这个数据就是预期中的发送方发的，不可能是其他人发的，于是完成了发送方鉴别；</p>
<p>2、接收方使用同样的hash算法，计算原始数据的hash值，如果这个hash值与解密后的hash值一致，则就能保证这个数据没有被篡改；</p>
<p>上面两步中，但凡有一步出现了错误，就认为这是一个脏数据；</p>
</blockquote>
<p>&emsp;&emsp;这个方案被称为<strong>数字签名</strong>。为什么是计算出<code>hash</code>值，对<code>hash</code>值加密，而不是直接使用私钥对数据加密？这是因为<code>hash</code>值比较小，加密解密比较快。</p>
<br>

<h2 id="2-5-同时解决三个问题的方案"><a href="#2-5-同时解决三个问题的方案" class="headerlink" title="2.5 同时解决三个问题的方案"></a>2.5 同时解决三个问题的方案</h2><p>&emsp;&emsp;上面提到的三个问题中，但凡有一个没有解决，数据传输都是不可靠的，这里我们就通过上面提到的几个办法，来同时解决三个问题。办法很简单，直接将上面解决方案进行整合即可：</p>
<ol>
<li><p>首先，我们使用<code>2.4</code>中所提出的办法，对数据进行处理，也就是计算<code>hash</code>，然后使用自己的私钥加密<code>hash</code>；</p>
</li>
<li><p>然后，将第一步计算出的<code>hash</code>与原始数据组合，使用<code>2.3</code>中提出的非对称加密 + 对称加密的方式，进行加密，加密之后再进行发送，保证数据的隐秘性；</p>
</li>
<li><p>接收方接收到数据后，使用<code>2.3</code>中的过程对数据解密，得到原始数据和加密后的<code>hash</code>；</p>
</li>
<li><p>使用<code>2.4</code>中的方式完成发送方鉴别以及数据完整性校验；</p>
</li>
</ol>
<blockquote>
<p>总结：上面的方式非常简单，就是将我们之前提过的加密，以及2.4中的方案组合，以此来同时解决三个问题。这是一个非常常用的方案，比如安全的邮件传输协议的实现就使用了类似方案。</p>
</blockquote>
<br>

<h2 id="2-6-解决发送方鉴别的其他方案"><a href="#2-6-解决发送方鉴别的其他方案" class="headerlink" title="2.6 解决发送方鉴别的其他方案"></a>2.6 解决发送方鉴别的其他方案</h2><p>&emsp;&emsp;假设接收方和发送方有一个共享的密钥，则可以使用以下方式进行身份鉴别：</p>
<ol>
<li><p>发送方向接收方发送自己的身份，比如发送一个“我是xxx”；</p>
</li>
<li><p>接收方为了验证不是其他人发送的虚假数据，向发送方发送一个随机数，这个随机数短时间内不会重复；</p>
</li>
<li><p>发送方使用它们共享的密钥，对这个随机数加密后发回接收方；</p>
</li>
<li><p>接收方接收后，使用密钥解密，如果确实是自己之前发送出去的随机数，即可确认对方身份；</p>
</li>
</ol>
<p>&emsp;&emsp;这里存在的问题是如何让接收方和发送方有一个共享密钥，其实就可以通过<code>2.3</code>节中第二个方案提到的，使用非对称加密的方式同步密钥。</p>
<blockquote>
<p>总结：</p>
<p>1、由于密钥只有发送方和接收方知晓，所以如果发送方能够将加密后的随机数发回，即可确认它的身份；</p>
<p>2、为什么不直接使用加密后的身份信息发送，而是使用随机数？因为如果这个加密后的身份数据被截获，其他人不需要进行解密，只需要向接收方发送这个加密后的身份，即可伪造自己的身份；</p>
</blockquote>
<br>

<h2 id="2-7-解决数据完整性的其他方案"><a href="#2-7-解决数据完整性的其他方案" class="headerlink" title="2.7 解决数据完整性的其他方案"></a>2.7 解决数据完整性的其他方案</h2><p>&emsp;&emsp;假设发送方和接收方有一个共享的密钥，则可以使用如下步骤保证数据完整性：</p>
<ol>
<li><p>发送方将原始数据与密钥拼接，然后计算拼接后的<code>hash</code>值，将这个<code>hash</code>值与原始数据一同发送；</p>
</li>
<li><p>接收方接收到后，同样将原始数据和密钥拼接，并计算<code>hash</code>值，然后与发来的<code>hash</code>值比较；</p>
</li>
<li><p>若<code>hash</code>值一致，可以保证这个数据没有修改，否则就是被篡改的数据；</p>
</li>
</ol>
<blockquote>
<p>总结：由于拼接进原始数据的密钥只有传输双方知道，这个hash值只有它们双方能计算出来，所以如果hash值不一致，即可认为数据是有问题的。</p>
</blockquote>
<p>&emsp;&emsp;这个方案叫<strong>报文鉴别码</strong>，和前面提过的数字签名有些类似，但是不同的是，这个方案中，并不需要对发送的数据进行加密，只是计算<code>hash</code>作为鉴别码，只要保证密钥不被窃取，即可保证数据的完整性。</p>
<br>

<h2 id="2-8-如何防止发送方自己发送虚假数据"><a href="#2-8-如何防止发送方自己发送虚假数据" class="headerlink" title="2.8 如何防止发送方自己发送虚假数据"></a>2.8 如何防止发送方自己发送虚假数据</h2><p>&emsp;&emsp;需要注意的一点是，我们上面所提出的方案，都是针对第三方侵入的解决方法，也就是防止除发送方和接收方外，有其他人对数据传输做手脚。但是，如果发送方自己篡改数据，或伪造数据，然后发送，这应该怎么解决呢？接收方如何能够识别出接收到的数据就是原始数据，而不是发送方自己篡改或发送的虚假数据呢？这是我最近一直在想的问题。</p>
<p>&emsp;&emsp;在这种情况下，我们需要考虑的是，发送数据的用户可以做到什么程度？由于发送数据的设备就在发送者手上，是不是意味着数据发送过程中的密钥等信息，用户是可以通过一些手段看到的？如果是可以，那上面所说的机制应该就没法保证安全性了。但是，本人水平有限，并不清楚有户对于发送到自己设备上的数据，可以窃取到什么程度。希望了解这个问题的人能够为我解答。</p>
<p>&emsp;&emsp;当然，上面的机制可能没办法保证完全可靠，但是也有很大的效果。比如说报文鉴别码就能解决用户自己篡改自己的数据这个问题。如果用户没有获取到密钥，则它自然无法发送虚假数据，因为没有密钥就没有办法计算出虚假数据的<code>hash</code>。虽然用户可能可以通过一些手段，获取到这个密钥，但是过程是应该是非常复杂的，这就对窃取的技术要求非常高，所以在大部分情况下可以保证数据不被篡改。</p>
<p>&emsp;&emsp;说实话，对于用户自己发送虚假数据这个问题，由于我知识水平不足，一直无法想清楚，网上也没有找到相关的资料，所以上面的描述都是基于我目前的理解。如果有了解这个问题相关知识，以及解决方案的，麻烦告知。</p>
<br>

<h1 id="三、总结"><a href="#三、总结" class="headerlink" title="三、总结"></a>三、总结</h1><p>&emsp;&emsp;以上就对数据的安全传输方案做了一个大致的介绍，归根到底，就是基于数据隐秘性，报文完整性以及发送方鉴别这三个问题，这三者缺一不可，只有全部解决，才能保证传输的可靠。</p>
<p>&emsp;&emsp;希望上面的内容对需要了解这一方面的人有所帮助，若存在错误或不足，也欢迎指正。</p>
<br>

<h1 id="四、参考"><a href="#四、参考" class="headerlink" title="四、参考"></a>四、参考</h1><ul>
<li>《计算机网络——自顶向下方法（原书第七版）》</li>
</ul>

        </div>

        <blockquote class="post-copyright">
    
    <div class="content">
        
<span class="post-time">
    最后更新时间：<time datetime="2020-05-14T12:56:51.076Z" itemprop="dateUpdated">2020-05-14 20:56:51</time>
</span><br>


        
        世界是个球，前方总有路！
        
    </div>
    
    <footer>
        <a href="http://tewuyiang.gitee.io/blog">
            <img src="/blog/img/avatar.jpg" alt="特务依昂">
            特务依昂
        </a>
    </footer>
</blockquote>

        


        <div class="post-footer">
            
	<ul class="article-tag-list" itemprop="keywords"><li class="article-tag-list-item"><a class="article-tag-list-link" href="/blog/tags/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C/" rel="tag">计算机网络</a></li></ul>


            
<div class="page-share-wrap">
    

<div class="page-share" id="pageShare">
    <ul class="reset share-icons">
      <li>
        <a class="weibo share-sns" target="_blank" href="http://service.weibo.com/share/share.php?url=http://tewuyiang.gitee.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BD%91%E7%BB%9C%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/&title=《计算机网络——如何保证网络传输的安全性》 — 博客主页&pic=http://tewuyiang.gitee.io/blog/img/avatar.jpg" data-title="微博">
          <i class="icon icon-weibo"></i>
        </a>
      </li>
      <li>
        <a class="weixin share-sns wxFab" href="javascript:;" data-title="微信">
          <i class="icon icon-weixin"></i>
        </a>
      </li>
      <li>
        <a class="qq share-sns" target="_blank" href="http://connect.qq.com/widget/shareqq/index.html?url=http://tewuyiang.gitee.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BD%91%E7%BB%9C%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/&title=《计算机网络——如何保证网络传输的安全性》 — 博客主页&source=一个未来程序员的博客~~~" data-title=" QQ">
          <i class="icon icon-qq"></i>
        </a>
      </li>
      <li>
        <a class="facebook share-sns" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=http://tewuyiang.gitee.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BD%91%E7%BB%9C%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/" data-title=" Facebook">
          <i class="icon icon-facebook"></i>
        </a>
      </li>
      <li>
        <a class="twitter share-sns" target="_blank" href="https://twitter.com/intent/tweet?text=《计算机网络——如何保证网络传输的安全性》 — 博客主页&url=http://tewuyiang.gitee.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BD%91%E7%BB%9C%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/&via=http://tewuyiang.gitee.io/blog" data-title=" Twitter">
          <i class="icon icon-twitter"></i>
        </a>
      </li>
      <li>
        <a class="google share-sns" target="_blank" href="https://plus.google.com/share?url=http://tewuyiang.gitee.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BD%91%E7%BB%9C%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/" data-title=" Google+">
          <i class="icon icon-google-plus"></i>
        </a>
      </li>
    </ul>
 </div>



    <a href="javascript:;" id="shareFab" class="page-share-fab waves-effect waves-circle">
        <i class="icon icon-share-alt icon-lg"></i>
    </a>
</div>



        </div>
    </div>

    
<nav class="post-nav flex-row flex-justify-between">
  
    <div class="waves-block waves-effect prev">
      <a href="/blog/HashMap%E6%BA%90%E7%A0%81%E8%A7%A3%E8%AF%BB%E2%80%94%E2%80%94%E6%B7%B1%E5%85%A5%E7%90%86%E8%A7%A3HashMap%E9%AB%98%E6%95%88%E7%9A%84%E5%8E%9F%E5%9B%A0/" id="post-prev" class="post-nav-link">
        <div class="tips"><i class="icon icon-angle-left icon-lg icon-pr"></i> Prev</div>
        <h4 class="title">【置顶】HashMap源码解读——深入理解HashMap高效的原因</h4>
      </a>
    </div>
  

  
    <div class="waves-block waves-effect next">
      <a href="/blog/Spring%E6%96%B9%E6%B3%95%E6%B3%A8%E5%85%A5%E7%9A%84%E4%BD%BF%E7%94%A8%E4%B8%8E%E5%AE%9E%E7%8E%B0%E5%8E%9F%E7%90%86/" id="post-next" class="post-nav-link">
        <div class="tips">Next <i class="icon icon-angle-right icon-lg icon-pl"></i></div>
        <h4 class="title">Spring方法注入的使用与实现原理</h4>
      </a>
    </div>
  
</nav>



    




















</article>



</div>

        <footer class="footer">
    <div class="top">
        
<p>
    <span id="busuanzi_container_site_uv" style='display:none'>
        站点总访客数：<span id="busuanzi_value_site_uv"></span>
    </span>
    <span id="busuanzi_container_site_pv" style='display:none'>
        站点总访问量：<span id="busuanzi_value_site_pv"></span>
    </span>
</p>


        <p>
            
                <span><a href="/blog/atom.xml" target="_blank" class="rss" title="rss"><i class="icon icon-lg icon-rss"></i></a></span>
            
            <span>博客内容遵循 <a rel="license noopener" href="https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh" target="_blank">知识共享 署名 - 非商业性 - 相同方式共享 4.0 国际协议</a></span>
        </p>
    </div>
    <div class="bottom">
        <p><span>特务依昂 &copy; 2015 - 2020</span>
            <span>
                
                Power by <a href="http://hexo.io/" target="_blank">Hexo</a> Theme <a href="https://github.com/yscoder/hexo-theme-indigo" target="_blank">indigo</a>
            </span>
        </p>
    </div>
</footer>

    </main>
    <div class="mask" id="mask"></div>
<a href="javascript:;" id="gotop" class="waves-effect waves-circle waves-light"><span class="icon icon-lg icon-chevron-up"></span></a>



<div class="global-share" id="globalShare">
    <ul class="reset share-icons">
      <li>
        <a class="weibo share-sns" target="_blank" href="http://service.weibo.com/share/share.php?url=http://tewuyiang.gitee.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BD%91%E7%BB%9C%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/&title=《计算机网络——如何保证网络传输的安全性》 — 博客主页&pic=http://tewuyiang.gitee.io/blog/img/avatar.jpg" data-title="微博">
          <i class="icon icon-weibo"></i>
        </a>
      </li>
      <li>
        <a class="weixin share-sns wxFab" href="javascript:;" data-title="微信">
          <i class="icon icon-weixin"></i>
        </a>
      </li>
      <li>
        <a class="qq share-sns" target="_blank" href="http://connect.qq.com/widget/shareqq/index.html?url=http://tewuyiang.gitee.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BD%91%E7%BB%9C%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/&title=《计算机网络——如何保证网络传输的安全性》 — 博客主页&source=一个未来程序员的博客~~~" data-title=" QQ">
          <i class="icon icon-qq"></i>
        </a>
      </li>
      <li>
        <a class="facebook share-sns" target="_blank" href="https://www.facebook.com/sharer/sharer.php?u=http://tewuyiang.gitee.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BD%91%E7%BB%9C%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/" data-title=" Facebook">
          <i class="icon icon-facebook"></i>
        </a>
      </li>
      <li>
        <a class="twitter share-sns" target="_blank" href="https://twitter.com/intent/tweet?text=《计算机网络——如何保证网络传输的安全性》 — 博客主页&url=http://tewuyiang.gitee.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BD%91%E7%BB%9C%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/&via=http://tewuyiang.gitee.io/blog" data-title=" Twitter">
          <i class="icon icon-twitter"></i>
        </a>
      </li>
      <li>
        <a class="google share-sns" target="_blank" href="https://plus.google.com/share?url=http://tewuyiang.gitee.io/blog/%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%BD%91%E7%BB%9C%E2%80%94%E2%80%94%E5%A6%82%E4%BD%95%E4%BF%9D%E8%AF%81%E7%BD%91%E7%BB%9C%E4%BC%A0%E8%BE%93%E7%9A%84%E5%AE%89%E5%85%A8%E6%80%A7/" data-title=" Google+">
          <i class="icon icon-google-plus"></i>
        </a>
      </li>
    </ul>
 </div>


<div class="page-modal wx-share" id="wxShare">
    <a class="close" href="javascript:;"><i class="icon icon-close"></i></a>
    <p>扫一扫，分享到微信</p>
    <img src="" alt="微信分享二维码">
</div>




    <script src="//cdn.bootcss.com/node-waves/0.7.4/waves.min.js"></script>
<script>
var BLOG = { ROOT: '/blog/', SHARE: true, REWARD: false };


</script>

<script src="//unpkg.com/hexo-theme-material-indigo@latest/js/main.min.js"></script>


<div class="search-panel" id="search-panel">
    <ul class="search-result" id="search-result"></ul>
</div>
<template id="search-tpl">
<li class="item">
    <a href="{path}" class="waves-block waves-effect">
        <div class="title ellipsis" title="{title}">{title}</div>
        <div class="flex-row flex-middle">
            <div class="tags ellipsis">
                {tags}
            </div>
            <time class="flex-col time">{date}</time>
        </div>
    </a>
</li>
</template>

<script src="//unpkg.com/hexo-theme-material-indigo@latest/js/search.min.js" async></script>






<script async src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script>



<script>
(function() {
    var OriginTitile = document.title, titleTime;
    document.addEventListener('visibilitychange', function() {
        if (document.hidden) {
            document.title = '人呢，怎么不见了！';
            clearTimeout(titleTime);
        } else {
            document.title = '(つェ⊂)咦!欢迎回来!';
            titleTime = setTimeout(function() {
                document.title = OriginTitile;
            },2000);
        }
    });
})();
</script>



</body>
</html>
